home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / swagn_r.zip / POINTERS.SWG / 0003_LL-INSRT.PAS.pas < prev    next >
Pascal/Delphi Source File  |  1993-05-28  |  2KB  |  68 lines

  1. {     The following Program yields output that indicates that I have it set up
  2. correctly but With my scanty understanding of exactly how to handle a linked
  3. list I would be surprised if it is.  This is one difficult area in which Swan
  4. is not quite as expansive as he might be.
  5.  
  6.         I will appreciate critique and commentary on this if you are anybody
  7. would be so kind as to give it:
  8. }
  9.  
  10. Program InsertLink;
  11. Uses Crt;
  12.  
  13. Type
  14.   Str15 = String[15];
  15.   Aptr = ^Link;
  16.   Link = Record
  17.        Data : Str15;
  18.        Node : Aptr;
  19.   end;
  20.  
  21. Var
  22.   FirstItem, NewItem, OldItem : Aptr;
  23.  
  24. Procedure CreateList;
  25. begin
  26.   Writeln('Linked list BEForE insertion of node.');
  27.   Writeln;
  28.   New(FirstItem);
  29.   FirstItem^.Data := 'inSERT ';
  30.   Write(FirstItem^.Data);
  31.   Write('             ');
  32.   New(FirstItem^.Node);
  33.   FirstItem^.Node^.Data := 'HERE';
  34.   Writeln(FirstItem^.Node^.Data);
  35.   FirstItem^.Node^.Node := NIL;
  36. end;
  37.  
  38. Procedure InsertALink;
  39. begin
  40.   Writeln; Writeln;
  41.   Writeln('Linked list AFTER insertion of node.');
  42.   Writeln;
  43.   Write(FirstItem^.Data);
  44.   New(NewItem);
  45.   NewItem^.Node := OldItem^.Node;
  46.   OldItem^.Node := NewItem;
  47.   FirstItem^.Node^.Data := 'inSERTEDLinK';
  48.   Write(FirstItem^.Node^.Data);
  49.   New(FirstItem^.Node^.Node);
  50.   FirstItem^.Node^.Node^.Data := ' HERE';
  51.   Writeln(FirstItem^.Node^.Node^.Data);
  52.   FirstItem^.Node^.Node^.Node := NIL;
  53. end;
  54.  
  55. Procedure DisposeList;
  56. begin
  57.   Dispose(FirstItem^.Node^.Node);
  58.   FirstItem^.Node := NIL;
  59. end;
  60.  
  61. begin
  62.   ClrScr;
  63.   CreateList;
  64.   Writeln;
  65.   InsertALink;
  66.   DisposeList;
  67. end.
  68.